﻿using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Sustainalytics.Caching.Tests
{
    [TestClass]
    public class AppMemoryCacheTests : AppCacheTests
    {
        protected override IAppCache CreateAppCache()
        {
            return new AppMemoryCache();
        }


        [TestInitialize]
        public override void TestInitialize()
        {
            base.TestInitialize();
        }

        [TestCleanup]
        public override void TestCleanup()
        {
            base.TestCleanup();
        }


        [TestMethod]
        [ExpectedException(typeof(CacheItemKeyNullOrEmptyException))]
        public override void Set_StringValue_KeyNull_Exception()
        {
            base.Set_StringValue_KeyNull_Exception();
        }

        [TestMethod]
        public override void Set_StringValue_ValueNull_Success()
        {
            base.Set_StringValue_ValueNull_Success();
        }

        [TestMethod]
        public override void Set_StringValue_Success()
        {
            base.Set_StringValue_Success();
        }

        [TestMethod]
        [ExpectedException(typeof(CacheItemKeyNullOrEmptyException))]
        public override void Set_IEnumerableValue_KeyNull_Exception()
        {
            base.Set_IEnumerableValue_KeyNull_Exception();
        }

        [TestMethod]
        public override void Set_IEnumerableValue_ValueNull_Success()
        {
            base.Set_IEnumerableValue_ValueNull_Success();
        }

        [TestMethod]
        public override void Set_IEnumerableValue_Success()
        {
            base.Set_IEnumerableValue_Success();
        }

        [TestMethod]
        [ExpectedException(typeof(CacheItemKeyNullOrEmptyException))]
        public override void GetString_KeyNull_Exception()
        {
            base.GetString_KeyNull_Exception();
        }

        [TestMethod]
        public override void GetString_Success()
        {
            base.GetString_Success();
        }

        [TestMethod]
        [ExpectedException(typeof(CacheItemKeyNullOrEmptyException))]
        public override void GetSet_KeyNull_Exception()
        {
            base.GetSet_KeyNull_Exception();
        }

        [TestMethod]
        public override void GetSet_Success()
        {
            base.GetSet_Success();
        }

        [TestMethod]
        [ExpectedException(typeof(CacheItemKeyNullOrEmptyException))]
        public override void Remove_KeyNull_Exception()
        {
            base.Remove_KeyNull_Exception();
        }

        [TestMethod]
        public override void Remove_Success()
        {
            base.Remove_Success();
        }

        [TestMethod]
        public override void Subscribe_Set()
        {
            base.Subscribe_Set();
        }

        [TestMethod]
        public override void Subscribe_Remove()
        {
            base.Subscribe_Remove();
        }
    }
}
